package collection_test.queue;

import java.util.concurrent.ConcurrentLinkedQueue;


/**
 * queue相对于list， 添加了许多对线程友好的api
 */

/**
 * 队列ConcurrentLinkedQueue的应用  CAS实现
 */
public class ConcurrentLinkedQueueTest {
    public static void main(String[] args) {
        ConcurrentLinkedQueue queue = new ConcurrentLinkedQueue();//内部使用了CAS进行操作元素, 无界队列
        boolean offer = queue.offer(1);//通过返回值确定是否添加成功
        boolean add = queue.add(1); //内部调用了offer
        Object poll = queue.poll();//删除并获取元素，无元素时返回null
        System.out.println(poll);
        Object peek = queue.peek();//只获取元素，无元素时返回null
        System.out.println(peek);

        Object remove = queue.remove();//删除并获取元素，无元素时抛异常
    }
}
